//单例模式一
// class Person{
//     constructor(name){
//         this.name = name;
//         if(!Person.instance){ //null
//             Person.instance = this;
//         }
//         return Person.instance
//     }
// }

// // console.log(Person);

// let p1 = new Person('zs');

// let p2 = new Person('zs');

// let p3 = new Person('lili');

// console.log(p1 === p2);//false

//单例模式二: static 方法

// class Person{
//     static getInstance(){
//         if(!Person.instance){
//             Person.instance = new Person();
//         }
//         return Person.instance
//     }
// }


// let p1 = Person.getInstance();

// let p2 = Person.getInstance();

// console.log(p1 === p2);


class Person{
    constructor(name){
        this.name = name;
    }

    sayName(){
        console.log(this.name)
    }
}

let p1 = new Person('zs');

console.log(p1);

console.log(p1.__proto__ === Person.prototype);


